from machine import Pin
import utime
import tm1637
import ds1302

# DS1302 RTC
def ds1302_rtc(ds1302: DS1302, seg: TM1637):
    # 初始时间： 年月日，星期，时分秒
    data_time = [2024, 6, 28, 5, 12, 35, 9]
    show_num = 0

    if ds1302.DateTime()[0] != 2024:
        # 设置时间
        ds1302.DateTime(data_time)
    else:
        # 获取时间
        while True:
            data_time = ds1302.DateTime()
            # 格式化时间数据
            data_time_str = "%d-%d-%d %02d-%02d-%02d %s" % (
                        data_time[0], data_time[1], data_time[2], 
                        data_time[4], data_time[5], data_time[6], 
                        data_time[3])
            # 控制台输出
            print(data_time_str)
            # 数码管滚动显示
            seg.number(data_time[5]*100 + data_time[6])
            utime.sleep_ms(1000)
    

if __name__ == "__main__":
    # 创建DS1302对象
    # clk: 时钟引脚
    # dio: 数据引脚
    # cs: 复位引脚
    ds1302 = ds1302.DS1302(clk=Pin(14), dio=Pin(27), cs=Pin(26))
    
    # 创建数码管对象
    seg = tm1637.TM1637(clk=Pin(16), dio=Pin(17))
    
    ds1302_rtc(ds1302, seg)
        
        
    
    

